################################################################################ 
#
# Replication code for:
# Empathy-based counterspeech can reduce racist hate speech
# in a social media field experiment
#
# PNAS 2021
# 
# BH-adjusted pvales
#
################################################################################ 


rm(list = ls())
setsave = T

################################################################################ 
#  LIBRARIES
################################################################################ 

library(stargazer)
library(dplyr)
library(tidyr)
library(readr)


################################################################################ 
#   DATA AND FOLDER
################################################################################ 

wd = dirname(dirname(dirname(rstudioapi::getActiveDocumentContext()$path)))
wd_res = paste0(wd, '/results')
wd_data =  paste0(wd, '/data')


# Upload the data
setwd(wd_data)
data = read.csv('auxiliary/container_lasso_controls.csv')

################################################################################ 
#  Clean container
################################################################################ 

data$treatment[data$treatment=="Warning of Consequences"] = "Warning of\nConsequences"
data$outvars.f = factor(data$yvar_name, levels=unique(data$yvar_name))


################################################################################ 
#  Pval adjustment by treatment arm
################################################################################ 

output = data.frame()

for (t in unique(data$treatments_lab)){
  
  print(paste0('Pvals for ', t))
  temp = data[which(data$treatments_lab==t),]
  
  pvals = temp$pval
  pvals_fdr = p.adjust(pvals, method = "BH", n=length(pvals))
  
  out = cbind(treatment = rep(t, length(pvals)),
              yvar_name = temp$yvar_name,
              pvals = as.numeric(pvals), pvals_fdr = as.numeric(pvals_fdr))
  output = rbind.data.frame(output, out)
  
  print('\nOriginal Pvals:')
  print(pvals)
  
  print('\nAdjusted Pvals:')
  print(pvals_fdr)
  
}


if (setsave){write.csv(output, paste0(wd_res, '/bh_adjusted_pvalues.csv'), row.names = F)}

